3
תגובות
היי

אף פעם לא נתקלתי באפשרות הזו אבל האם היא קיימת?
יש לי מחלקה של קונטרולר שהיא נוצרת ברגע שהראוטר קולט את הURL של השם הספציפי (אגב אלכס זה עובד, כמה תיקוני קוד פשוטים ;) ), עכשיו אני לא רוצה שאנשים ייצטרכו לעשות אקסטנדס מראש למחלקה של הקונטרולר אלא אני רוצה לעשות דרך הקוד שלי בפריימוורק.. משהו כמו זה
$dada = new Controller() extends exController


מישהו יכול לומר לי רעיון איך לעשות את זה?

3 תשובות

avatar ענה intval ב 14 לדצמבר 2012 #

בצורה שרשמת - אין אפשרות.
מה הבדל בין לכתוב את ה extends בקובץ של הגדרת המחלקה לאומת לכתוב את ה extends בקובץ של השימוש במחלקה?
יש מצבים שבהם אתה רוצה מחלקה Controller שהיא לא יורשת מ exController?

לא הבנתי בכלל למה אתה רוצה לעשות את זה.
אין שום בעיה להגדיר את תכונות ההורשה בזמן שמגדירים את המחלקה עצמה. זה אינטויטיבי, ברור וזה המקום שבו זה אמור להיות.

avatar ענה PHPDeveloper ב 15 לדצמבר 2012 #

יש מקרים שבהם הקונטרולר אמור להוריש ממחלקה שונה מהברירת המחדל הרגילה. יש לי בקוד מזהה שבודק במה עוסק הקונטרולר וכך הוא אמור להכניס אוטומטית את ההורשה מאב מחלקה אחרת על פי הנדרש..

avatar ענה intval ב 15 לדצמבר 2012 #

אז תעשה שני מחלקות אב והמשתמש יבחר לבד ממה לרוש
או שבפונקציות של מחלקת האב תוסיף לעצמך איזה דגל ותשנה את ההתנהגות של המחלקה בהתאם.
או שתעיף את הפונקציונליות השונה ממחלקת האב. היא לא אמורה להיות שם. זה לא המטרה של הורשה